// utility.h

#ifndef INCLUDE_UTILITY_
#define INCLUDE_UTILITY_

enum CalcType
{
    ADD,
    MINUS,
    MULTIPLE,
    DIVIDE
};

class base
{
public:
    base(){};
    ~base(){};
    virtual int ArithmeticCalculation(CalcType op, int a, int b) = 0;
};

class Utility : public base
{
public:
    int ArithmeticCalculation(CalcType op, int a, int b);
};

class Multiple
{
    base *calc;

public:
    Multiple(base *calc) : calc(calc){};
    int CalcuationResultMultiple(CalcType op, int a, int b, int multiple);
};

#endif